package com.egoo.ticket.server.service;


import com.egoo.ticket.server.pojo.dto.FormTemplateInputDto;
import com.egoo.ticket.server.pojo.dto.PageOutputDto;
import com.egoo.ticket.server.pojo.entity.FormTemplate;

import java.util.List;


/**
 * @author Administrator
 */
public interface FormTemplateService {
	/**
	 * 创建表达模板
	 * @param formTemplateInputDto
	 * @return
	 */
	Integer create(FormTemplateInputDto formTemplateInputDto);

	/**
	 * 获取名称相等的表单
	 * @param name
	 * @param tenantId
	 * @return
	 */
	FormTemplate selectByEqualsName(String name, String tenantId);

	/**
	 * 获取表单内容
	 * @param id
	 * @return
	 */
	FormTemplate selectContentById(Integer id);

	/**
	 * 获取所有表单分页
	 * @param currentPage
	 * @param pageSize
	 * @param tenantId
	 * @return
	 */
	PageOutputDto selectAll(Integer currentPage, Integer pageSize, String tenantId);

	/**
	 * 通过名称获取表单列表
	 * @param name
	 * @param currentPage
	 * @param pageSize
	 * @param tenantId
	 * @return
	 */
	PageOutputDto selectByName(String name, Integer currentPage, Integer pageSize, String tenantId);

	/**
	 * 更新表单内容
	 * @param formTemplateInputDto
	 * @return
	 */
	Integer updateContent(FormTemplateInputDto formTemplateInputDto);

	/**
	 * 删除表达
	 * @param formTemplate
	 * @return
	 */
	Integer delete(FormTemplate formTemplate);

	/**
	 * 通过id获取对应表单
	 * @param id
	 * @return
	 */
	FormTemplate selectById(Integer id);

	/**
	 * 批量删除
	 * @param formTemplateList
	 * @return
	 */
	Integer deleteBatch(List<FormTemplate> formTemplateList);

	/**
	 * TODO 查询表单id和名称列表
	 * @param tenantId
	 * @return
	 */
	List<FormTemplate> selectAllFormTemplateIdAndName(String tenantId);

	/**
	 * 通过节点id获取对应表单
	 * @param nodeTypeId
	 * @return
	 */
	FormTemplate getFormTemplateByTypeNodeId(String nodeTypeId);
}
